-- **********************************************************************
-- EOSN-FCTRACEROUTE-MIB: McDATA EOSN FC Trace Route Enterprise MIB (SMIv2).
--
--
-- REVISION HISTORY
-- Date      PRG  Description
-- ======================================================================
-- Release 1.0
--
-- 08/26/04  vk  Initial version
--
-- Copyright (c) 2004 McDATA Corp.  All rights reserved.
-- Copyright (c) 2002-2003 Sanera Systems, Inc.  All rights reserved.
-- **********************************************************************
--
EOSN-FCTRACEROUTE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
    NOTIFICATION-TYPE, TimeTicks, IpAddress, 
    Counter32, Counter64, Integer32, 
    Unsigned32, Gauge32                         FROM SNMPv2-SMI

    TEXTUAL-CONVENTION, TruthValue, 
    RowStatus, DisplayString, TimeStamp         FROM SNMPv2-TC

    MODULE-COMPLIANCE, OBJECT-GROUP             FROM SNMPv2-CONF

    SnmpAdminString                             FROM SNMP-FRAMEWORK-MIB
    FcAddressId,
    FcNameId                                    FROM FCMGMT-MIB
    
    eosnModules, eosnMIB                        FROM  EOSN-REG
    
    BbFcAddrType,
    BbEnabledStatus,
    BbPortIndex,
    BbRowStatusWithoutNotInService,
    BbDomainId                                  FROM EOSN-TC

    bbFcTraceRoute,
    bbSysSwitchName,
    bbSysSwitchId,
    bbVfID                                      FROM  EOSN-MIB
     
    bbNotifications                             FROM EOSN-TRAP-MIB;


eosnFcTraceRouteModule MODULE-IDENTITY
        LAST-UPDATED    "0408260000Z"
        ORGANIZATION    "McDATA Corporation"
        CONTACT-INFO
        "       McDATA Corporation

        Postal: 4555 Great America Pkw, Suite 401
                Santa Clara, CA 95054 
                USA
 
           Tel: +1-800.752.4572
        E-mail: support@mcdata.com
           Web: www.mcdata.com

       "
        DESCRIPTION
        "This MIB module describes Fibre channel Trace route feature 
        supported on the Interprid 10k family."
        REVISION        "200408260000Z"
        DESCRIPTION
        "Initial version of this module."
        ::= { eosnModules 6 }

-- Fibre Channel Trace Route request table.

bbFcTraceRouteTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFcTraceRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for configuring trace route request."
    ::= { bbFcTraceRoute 1 }

bbFcTraceRouteEntry OBJECT-TYPE
    SYNTAX      BbFcTraceRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An request entry of the fc trace route table."
    INDEX   { bbVfID, bbFcTraceRouteIndex }
    ::= { bbFcTraceRouteTable 1}

BbFcTraceRouteEntry ::=
    SEQUENCE {
        bbFcTraceRouteIndex                 Unsigned32, 
        bbFcTraceRouteAdminStatus           BbEnabledStatus,
        bbFcTraceRouteOperStatus            INTEGER,
        bbFcTraceRouteErrorCode             INTEGER,
        bbFcTraceRouteTrapEnable            TruthValue,
        bbFcTraceRouteAddrType              BbFcAddrType,
        bbFcTraceRouteSourcePortName        FcNameId,
        bbFcTraceRouteDestinationPortName   FcNameId,
        bbFcTraceRouteSourcePortId          FcAddressId,
        bbFcTraceRouteDestinationPortId     FcAddressId,
        bbFcTraceRouteRowStatus             BbRowStatusWithoutNotInService
    }

bbFcTraceRouteIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique index to identify trace route request entry."
    ::= { bbFcTraceRouteEntry 1 }

bbFcTraceRouteAdminStatus OBJECT-TYPE
    SYNTAX  BbEnabledStatus    
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Admin or desired state. If the state is enabled(1) then the 
         trace route request is/(will be) activated.  If it is in disabled(2)
         state, then it has been deactivated or completed."
    ::= { bbFcTraceRouteEntry 2 }

bbFcTraceRouteOperStatus OBJECT-TYPE
    SYNTAX      INTEGER {
        inProgress(1),
        success(2),
        partialSucess(3),
        failed(4),
        disabled(5)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The operational status of this entry."
    ::= { bbFcTraceRouteEntry 3 }

bbFcTraceRouteErrorCode OBJECT-TYPE
    SYNTAX      INTEGER {
        noError(0),
        notSupportedInNextSwitch(1),
        noResponseFromNextSwitch(2),
        maxHopReached(3),
        sourcePortNotInFabric(4),
        desitinationPortNotInFabric(5),
        deviceNotInCommonZone(6),
        noRouteBetweenPorts(7),
        unknownReason(8)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The error code returned for this entry.  When the 
        bbFcTraceRouteOperStatus object is in inProgress or success or state,
        then this object will be have noError(0) value.  If there is a Vendor 
        specific error code, then it will have a value between 0xfo & 0xff.
        All other values are reserved."
    ::= { bbFcTraceRouteEntry 4 }

bbFcTraceRouteTrapEnable OBJECT-TYPE
    SYNTAX TruthValue 
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates whether bbFcTraceRouteCompleted notification
         is true (enabled) or false (disabled) for this entry.   If set to
         true, then a notification is generated when the request is compeleted
         otherwise it doesn't."
    ::= { bbFcTraceRouteEntry 5 }

bbFcTraceRouteAddrType OBJECT-TYPE
    SYNTAX BbFcAddrType 
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The address type of this instance. The default value is World Wide 
        name of the port."
    DEFVAL { 1 }
    ::= { bbFcTraceRouteEntry 6 }

bbFcTraceRouteSourcePortName OBJECT-TYPE
    SYNTAX FcNameId 
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The World Wide Name of the port.  This is the source port from
        which the trace route should be executed from."
    ::= { bbFcTraceRouteEntry 7 }

bbFcTraceRouteDestinationPortName OBJECT-TYPE
    SYNTAX FcNameId 
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The World Wide Name of the port.  This is the destination port to
        which the trace route should be reached."
    ::= { bbFcTraceRouteEntry 8 }

bbFcTraceRouteSourcePortId OBJECT-TYPE
    SYNTAX FcAddressId 
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Fibre Channel ID of the port.  This is the source port from
        which the trace route should be executed from."
    ::= { bbFcTraceRouteEntry 9 }

bbFcTraceRouteDestinationPortId OBJECT-TYPE
    SYNTAX FcAddressId 
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Fibre Channel ID of the port.  This is the destination port to
        which the trace route should be reached."
    ::= { bbFcTraceRouteEntry 10 }

bbFcTraceRouteRowStatus OBJECT-TYPE
    SYNTAX BbRowStatusWithoutNotInService 
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is used to create a new row or modify or delete 
        an existing row in this table."
    ::= { bbFcTraceRouteEntry 11 }

-- Fibre Channel Trace Route path table
-- This table contains the path information of the trace route request
-- performed on an entry in the bbFcTraceRouteTable

bbFcTraceRoutePathTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF BbFcTraceRoutePathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table for of fibre channel trace route path results.
        This contains path by path result of request issued on 
        bbFcTraceRoute table."
    ::= { bbFcTraceRoute 2 }

bbFcTraceRoutePathEntry OBJECT-TYPE
    SYNTAX      BbFcTraceRoutePathEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A path entry the fc trace route.
        There are 2 index to this table.  bbFcTraceRouteIndex
        identifies the bbFcTraceRouteEntry that a 
        bbFcTraceRoutePathEntry belongs.  bbFcTraceRoutePathIndex
        repesents the path in trace route response.  The entries
        are automatically created whenever the trace route is
        sucessfully/partially-sucesssfully executed.   They are
        deleted whenever bbFcTraceRouteEntry is deleted or when the 
        request ages out."
    INDEX   { bbVfID, bbFcTraceRouteIndex, bbFcTraceRoutePathIndex }
    ::= { bbFcTraceRoutePathTable 1}

BbFcTraceRoutePathEntry ::=
    SEQUENCE {
        bbFcTraceRoutePathIndex             Unsigned32, 
        bbFcTraceRoutePathSwitchName        FcNameId,
        bbFcTraceRoutePathDomainId          BbDomainId,
        bbFcTraceRoutePathIngressPort       BbPortIndex,
        bbFcTraceRoutePathIngressPortName   FcNameId,
        bbFcTraceRoutePathEgressPort        BbPortIndex,
        bbFcTraceRoutePathEgressPortName    FcNameId
    }

bbFcTraceRoutePathIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A unique index to identify trace route path entry.
        For a given bbfctraceRouteIndex, this instance value
        increases starting from 1."
    ::= { bbFcTraceRoutePathEntry 1 }

bbFcTraceRoutePathSwitchName OBJECT-TYPE
    SYNTAX FcNameId 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The World Wide Name of the switch related to the path."  
    ::= { bbFcTraceRoutePathEntry 2 }

bbFcTraceRoutePathDomainId OBJECT-TYPE
    SYNTAX BbDomainId 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Domain Id of the switch related to this path."  
    ::= { bbFcTraceRoutePathEntry 3 }

bbFcTraceRoutePathIngressPort OBJECT-TYPE
    SYNTAX BbPortIndex 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The port number of the Ingress port related to this path."  
    ::= { bbFcTraceRoutePathEntry 4 }

bbFcTraceRoutePathIngressPortName OBJECT-TYPE
    SYNTAX FcNameId 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The World Wide name of the Ingress port related to this path."  
    ::= { bbFcTraceRoutePathEntry 5 }

bbFcTraceRoutePathEgressPort OBJECT-TYPE
    SYNTAX BbPortIndex 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The port number of the Egress port related to this path."  
    ::= { bbFcTraceRoutePathEntry 6 }

bbFcTraceRoutePathEgressPortName OBJECT-TYPE
    SYNTAX FcNameId 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The World Wide name of the Egress port related to this path."  
    ::= { bbFcTraceRoutePathEntry 7 }

-- Notifications
bbFcTraceRouteCompleted NOTIFICATION-TYPE
    OBJECTS {   
                 bbFcTraceRouteIndex,
                 bbFcTraceRouteSourcePortName,
                 bbFcTraceRouteDestinationPortName,
                 bbFcTraceRouteSourcePortId,
                 bbFcTraceRouteDestinationPortId,
                 bbFcTraceRouteOperStatus,
                 bbFcTraceRouteErrorCode,
                 bbSysSwitchName,
                 bbSysSwitchId
            }
    STATUS  current
    DESCRIPTION
        "The Trap is sent whenever the fibre channel trace route request is
         completed & only if bbFcTraceRouteTrapEnable is set to true."
    ::= { bbNotifications 80 }


END